perm filename TSER.MAC[901,BGB] blob
sn#129623 filedate 1974-11-12 generic text, type T, neo UTF8
TITLE TSERVO ROUTINE
00200 A1=1
00300 ENTRY TSERVO
00400 INTERNAL STATUS, FLAG, COUNT, P1, P2, P3, X1, X2, X3, L1, L2, L3
00500 INTERNAL E1, E2, E3
00600
00700 ;REGISTERS AVAILABLE TO USER
00800
00900 STATUS: Z; STATUS BITS
01000 FLAG: Z; NON-ZERO IF SERVOING
01100 COUNT: Z; LENS CHANGE COUNTER
01200 P1: Z; LATEST POT READING - FOCUS
01300 P2: Z; TILT
01400 P3: Z; PAN
01500 X1: Z; PREVIOUS POT READING
01600 X2: Z
01700 X3: Z
01800 L1: Z; FINAL POT VALUES
01900 L2: Z
02000 L3: Z
02100 E1: 4; TOLERANCES
02200 E2: 10
02300 E3: 10
02400
02500 ;REGISTERS FOR INTERNAL USE ONLY
02600 .DEL: 25; COUNTER FOR HUNG A-D
02700 .MCNT: 300; LENS COUNT
02800 .MCNTX: 240; LENS MOTOR CUTOFF
02900 .MISSD: 100; DATA MISSED COUNT
03000 .CNTR: 40; STOP COUNTER MAX
03100
03200 ;STATUS DITS
03300 .DONE==1
03400 .RUN==2
03500 .HUNG==20
03600 .STOP==10
03700 .LENS==4
03800 .MISS==40
03900
04000 ;RELAY BITS
04100 .P1P==20000; FOCUS NEAR
04200 .P1M==10000; FOCUS FAR
04300 .P2M==400000; TILT UP
04400 .P2P==200000; TILT DOWN
04500 .P3M==40000; PAN CW
04600 .P3P==100000; PAN CCW
04700 .XLENS==4000
00100 ;CONSTANTS
00200
00300 .AD==424
00400 .DATA==204
00500 .MISC==700
00600 .REL==40
00700 OPDEF SPCWAR[43B8]
00800
00900 TSERVO: MOVE 17,STATUS; FIXUP STATUS BITS
01000 ANDCMI 17,.HUNG+.MISS
01100 ORI 17,.RUN
01200 SETZM FLAG
01300 SETZM 16;
01400 TRNN 17,.DONE
01500 JRST .LAB1
01600 SETZM COUNT
01700 CONO .MISC,.REL
01800 MOVEM 17,STATUS
01900 CALL
02000
02100 .LAB1: TRZN 17,.LENS
02200 JRST .LAB2
02300 MOVE .MCNT
02400 ADDM COUNT
02500 .LAB2: TRNE 17,.STOP
02600 JRST .LABD
02700 CONI .DATA,1
02800 ANDI 1,7
02900 CONO .DATA,4250
03000 CONO .AD,172000
03100 MOVE 4,.MISSD
03200 MOVE 3,.DEL
03300 CONI .DATA,2
03400 TRNE 2,11000
03500 JRST .+3
03600 SOJG 3,.-3
03700 JRST .HANG
03800 TRNN .DATA,10000
03900 JRST .+3
04000 SOJG 4,.-10
04100 JRST .DMISS
04200 DATAI .DATA,5
04300 CONO .AD,4111
04400 CONO .DATA,203560(1)
04500 ASHC 5,-↑D24
04600 LSH 6,1
04700 ASHC 6,-↑D24
04800 LSH 7,1
04900 ASH 7,-↑D24
00100 MOVE 10,[XWD 5,P1]
00200 BLT 10,P3
00300 SUB 5,L1
00400 SUB 6,L2
00500 SUB 7,L3
00600 MOVM 11,5
00700 MOVM 12,6
00800 MOVM 13,7
00900 CAMGE 11,E1
01000 JRST .LAB3
01100 JUMPG 5,.+2
01200 TROA 16,.P1M
01300 ORI 16,.P1P
01400 SETOM FLAG
01500 .LAB3: CAMGE 12,E2
01600 JRST .LAB4
01700 JUMPG 6,.+2
01800 TROA 16,.P2M
01900 ORI 16,.P2P
02000 SETOM FLAG
02100 .LAB4: CAMGE 13,E3
02200 JRST .LAB5
02300 JUMPG 7,.+2
02400 TROA 16,.P3M
02500 ORI 16,.P3P
02600 JRST .LAB6
02700
02800 .LAB5: SKIPN FLAG
02900 JRST .LABD
03000 .LAB6: MOVS 10,[XWD 5,P1]
03100 BLT 10,7
03200 SUB 5,X1
03300 SUB 6,X2
03400 SUB 7,X3
03500 MOVMS 5
03600 MOVMS 6
03700 MOVMS 7
03800 SUB 5,E1
03900 SUB 6,E2
04000 SUB 7,E3
04100 AND 5,6
04200 AND 5,7
04300 JUMPGE 5,.LAB10
04400 AOS 15,.SCNT
04500 CAMGE 15,.CNTR
04600 JRST .LAB11
04700 SETZM 16
04800 ORI 17,.STOP+.DONE
04900 JRST .+5
00100 .HANG: TROA 17,.HUNG+.DONE
00200 .DMISS: ORI 17,.MISS+.DONE
00300 CONO .AD,4000
00400 CONO .DATA,203560(1)
00500 SETZM COUNT
00600 SETZM .SCNT#
00700 JRST .LABB
00800
00900 .LABD: SKIPN COUNT
01000 ORI 17,.DONE
01100 .LAB10: MOVE 10,[XWD P1,X1]
01200 BLT 10,X3
01300 SETZM .SCNT
01400 .LAB11: MOVE 15,COUNT
01500 CAMLE 15,.MCNTX
01600 ORI 16,.XLENS
01700 .LABB: CONO .MISC,.REL(16)
01800 JUMPLE 15,.+2
01900 SOS COUNT
02000 MOVEM 17,STATUS
02100 CALL
02200
02300 FLUSH: CONO .MISC,.REL
02400 SETOM FL#
02500 CALL
02600 END